package com.ruicar.afs.cloud.channel.register.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruicar.afs.cloud.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Ice
 * @date 2020/10/13 14:25
 */
@Data
@TableName("channel_listing_car")
@ApiModel(value = "挂牌车正式表")
public class ChannelListingCar extends BaseEntity<ChannelListingCar> {

    /**
     * ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 车辆类型 车辆类型 01:乘用车/02:商用车
     */
    private String carType;

    /**
     * 车型
     */
    private String model;

    /**
     * 款式
     */
    private String style;

    /**
     * 燃料类型 燃料类型 01：燃油 02 新能源
     */
    private String fuelType;

    /**
     * 车辆配置
     */
    private String carConfig;

    /**
     * 上牌省份
     */
    private String cardProvince;

    /**
     * 上牌城市
     */
    private String cardCity;

    /**
     * -- VIN号
     */
    private String vin;

    /**
     * 表显里程
     */
    private String apparentMileage;

    /**
     * 首次登记时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date firstLicensePlateDate;

    /**
     * 车辆出厂日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date manufactureDate;

    /**
     * 原车主名称
     */
    private String ownerName;

    /**
     * 车主联系方式
     */
    private String ownerPhone;

    /**
     * 证件类型
     */
    private String credentialsType;

    /**
     * 证件号码
     */
    private String ownerCardId;

    /**
     * 使用性质 使用性质 01:自用02:商用
     */
    private String useCharacter;

    /**
     * 指导价
     */
    private BigDecimal guidancePrice;

    /**
     * 排量
     */
    private String outputVolume;

    /**
     * 发动机号
     */
    private String engineNumber;

    /**
     * 车身颜色
     */
    private String bodyColor;

    /**
     * 总过户次数
     */
    private Integer transferNumber;

    /**
     * 车牌号
     */
    private String carNumber;

    /**
     * 评估价
     */
    private BigDecimal evaluationPrice;


    /**
     * 渠道ID
     */
    @JsonProperty(value = "channelId")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long channelId;

    /**
     * 有效期天数
     */
    private Integer validityDays;

    /**
     * 状态 00-草稿\01-审核中\02-启用\03-退回\04拒绝\05-停用
     */
    private String status;

    /**
     * 通过时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date approvalTime;

    /**
     * 启停原因
     */
    private String startStopReason;

    /**
     * 信息来源channel:代表渠道apply：进件
     */
    private String msgSource;
    /**
     * 是否需要车牌1:是 0:否
     */
    private String useCarNumber;

    /**
     * 停用时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date ceaseTime;

    /**
     * 品牌ID
     */
    private String brandId;

    /**
     * 车型ID
     */
    private String modelId;

    /**
     * 款式ID
     */
    private String styleId;

    /**
     * ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long dataId;

    /**
     * 开票日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date invoiceTime;


    /**
     * 渠道归属00:SP 01:直营 02:总对总
     */
    private String channelBelong;
}
